package interfaceGraphique;


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * Permet de generer un message d'erreur
 * @author nicolas rault et matthieu allon
 *
 */
public class FenError extends JDialog implements ActionListener
{
	private static final long serialVersionUID = 1L;
	/**
	 * Sert a l'utilisation du pattern Singleton de la fenetre
	 */
	private static FenError singletonFenError;
	private JLabel messageErreur;
	private JButton ok;
	
	/**
	 * Constructeur de la fenetre
	 * @param nom Permet de donner un nom a la fenetre
	 */
	private FenError(String nom)
	{
		this.setTitle(nom);
		this.setSize(350,100);
		this.setLocationRelativeTo(this.getParent());
		this.setModal(true);
		
		JPanel pan = new JPanel();
		BorderLayout border = new BorderLayout();
		pan.setLayout(border);
		this.add(pan);
		
		//Creation des differents Label et TextField ou ComboBox associés
		messageErreur = new JLabel("Veuillez d'abord charger un fichier.");
		pan.add(messageErreur,BorderLayout.NORTH);
				
		ok = new JButton("OK");
		pan.add(ok,BorderLayout.SOUTH);
		ok.addActionListener(this);
		
	}
	
	/**
	 * Permet de changer le texte de la fenetre
	 * @param nom nouveau texte de la fenetre
	 */
	public void changeLabel(String nom)
	{
		messageErreur.setText(nom);
	}
	
	/**
	 * Permet d'autoriser une seule creation de la fenetre FenError.
	 * @return la fenetre FenError
	 */
	public static FenError getInstance(String nom) 
	{
		if (singletonFenError == null) 
		{
			singletonFenError = new FenError(nom);
		}
		return singletonFenError;
	}

	/**
	 * Permet d'assigner une action aux differents evenements survenus sur la fenetre.
	 * @param e evenement recupere par la fenetre
	 */
	public void actionPerformed(ActionEvent e) 
	{
		String bouton = e.getActionCommand();
		if(bouton.equals("OK"))
		{
			this.setVisible(false);
		}
		
	}
}